string,list,set,hash,sorted set
数据类型 | 存储的值 | 读写能力 |
---|---|---|
string | 可以是字符串、整数或浮点数。统称为元素 | 对字符串操作,对整数类型加减 |
list | 一个序列集合,且每个节点都包好了一个元素 | 序列两端推入或弹出元素。修剪、查找或移除元素。 |
set | 不重复的元素 | 从集合中插入或删除元素 |
hash | 有key-value的散列组,其中key是唯一的字符串,value是元素 | 按照key进行增加删除。 |
sort set | 带分数的score-value有序集合,其中score为浮点,value为元素 | 集合插入,按照分数范围查找。 |
string
结构:
key+vlaue
key:字符串
value:(string/int/float)
此处应该有图
简单使用:
在redis-cli中输入
1
2
3
4
5
6127.0.0.1:6379> set string1 content
OK
127.0.0.1:6379> set string2 3
OK
127.0.0.1:6379> set string3 3.5
OK对整数进行自增自减
1
2
3
4
5
6
7
8127.0.0.1:6379> incr string1
(error) ERR value is not an integer or out of range
127.0.0.1:6379> incr string2
(integer) 4
127.0.0.1:6379> decr string2
(integer) 3
127.0.0.1:6379> incr string3
(error) ERR value is not an integer or out of range对整数进行加减法
1
2
3
4127.0.0.1:6379> decrby string2 4
(integer) -1
127.0.0.1:6379> incrby string2 9
(integer) 8获取内容
1
2
3
4
5
6
7
8127.0.0.1:6379> get string1
"content"
127.0.0.1:6379> get string2
"8"
127.0.0.1:6379> get string3
"3.5"
127.0.0.1:6379> get string4
(nil)
list
结构:
key:
value(12)
value(13)
value(14)
value(13)
此处应该有图
1 | 127.0.0.1:6379> lpush list1 12 |
1 | 127.0.0.1:6379> lpush list2 12 |
set
无序,不重复
结构:
key:
value(12)
value(13)
1 | 127.0.0.1:6379> sadd set1 12 |
hash
哈希类型也叫散列类型
key–>key1 value(string/int/float)
key2 value(string/int/float)
key3 value(string/int/float)
key4 value(string/int/float)
添加键值对、删除键值对、
1 | 127.0.0.1:6379> hset hash1 key1 12 |
sorted set
key–>score(10.1) value(string/int/float) rank:1
score(9.1) value(string/int/float) rank:0
score(11.1) value(string/int/float) rank:2
value必须唯一
score相同时,按字典顺序排列先后
1 | 127.0.0.1:6379> zadd zset1 10.1 val1 |
各个数据类型应用场景
类型 | 简介 | 特性 | 场景 |
---|---|---|---|
String(字符串) | 二进制安全 | 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M | — |
Hash(字典) | 键值对集合,即编程语言中的Map类型 | 适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去) | 存储、读取、修改用户属性 |
List(列表) | 链表(双向链表) | 增删快,提供了操作某一段元素的API | 1,最新消息排行等功能(比如朋友圈的时间线) 2,消息队列 |
Set(集合) | 哈希表实现,元素不重复 | 1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作 | 1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐 |
Sorted Set(有序集合) | 将Set中的元素增加一个权重参数score,元素按score有序排列 | 数据插入集合时,已经进行天然排序 | 1、排行榜 2、带权重的消息队列 |